
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 08/24/2011 16:05:15
-- Generated from EDMX file: C:\Users\Luis\Documents\Visual Studio 2010\Projects\NaviCar\NaviCar.DB\NaviCarDB.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [NaviCar];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_PessoaVeiculo]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Veiculos] DROP CONSTRAINT [FK_PessoaVeiculo];
GO
IF OBJECT_ID(N'[dbo].[FK_VeiculoPosicao]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Posicoes] DROP CONSTRAINT [FK_VeiculoPosicao];
GO
IF OBJECT_ID(N'[dbo].[FK_SistemaMensagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Mensagems] DROP CONSTRAINT [FK_SistemaMensagem];
GO
IF OBJECT_ID(N'[dbo].[FK_VeiculoSistema]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Veiculos] DROP CONSTRAINT [FK_VeiculoSistema];
GO
IF OBJECT_ID(N'[dbo].[FK_MensagemTipoMensagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Mensagems] DROP CONSTRAINT [FK_MensagemTipoMensagem];
GO
IF OBJECT_ID(N'[dbo].[FK_SistemaTipoMensagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[TipoMensagens] DROP CONSTRAINT [FK_SistemaTipoMensagem];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[Pessoas]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Pessoas];
GO
IF OBJECT_ID(N'[dbo].[Posicoes]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Posicoes];
GO
IF OBJECT_ID(N'[dbo].[Veiculos]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Veiculos];
GO
IF OBJECT_ID(N'[dbo].[Sistemas]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Sistemas];
GO
IF OBJECT_ID(N'[dbo].[Mensagems]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Mensagems];
GO
IF OBJECT_ID(N'[dbo].[TipoMensagens]', 'U') IS NOT NULL
    DROP TABLE [dbo].[TipoMensagens];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Pessoas'
CREATE TABLE [dbo].[Pessoas] (
    [CodigoPessoa] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(60)  NOT NULL,
    [Senha] nvarchar(100)  NOT NULL,
    [Login] nvarchar(15)  NOT NULL,
    [Email] nvarchar(100)  NOT NULL,
    [DataCadastro] datetime  NOT NULL
);
GO

-- Creating table 'Posicoes'
CREATE TABLE [dbo].[Posicoes] (
    [CodigoPosicao] int IDENTITY(1,1) NOT NULL,
    [Latitute] nvarchar(max)  NOT NULL,
    [Longitude] nvarchar(max)  NOT NULL,
    [Data] datetime  NOT NULL,
    [CodigoVeiculo] int  NOT NULL,
    [TipoAviso] nchar(1)  NOT NULL,
    [Velocidade] decimal(8,3)  NOT NULL
);
GO

-- Creating table 'Veiculos'
CREATE TABLE [dbo].[Veiculos] (
    [CodigoVeiculo] int IDENTITY(1,1) NOT NULL,
    [CodigoPessoa] int  NOT NULL,
    [Placa] nvarchar(10)  NOT NULL,
    [ChaveRastreador] nvarchar(60)  NOT NULL,
    [CodigoSistema] int  NOT NULL,
    [Intervalo] int  NOT NULL
);
GO

-- Creating table 'Sistemas'
CREATE TABLE [dbo].[Sistemas] (
    [CodigoSistema] int IDENTITY(1,1) NOT NULL,
    [IP] nvarchar(15)  NOT NULL,
    [Porta] int  NOT NULL,
    [NomeSistema] nvarchar(20)  NOT NULL
);
GO

-- Creating table 'Mensagems'
CREATE TABLE [dbo].[Mensagems] (
    [CodigoMensagem] int IDENTITY(1,1) NOT NULL,
    [Texto] nvarchar(200)  NOT NULL,
    [CodigoSistema] int  NOT NULL,
    [TipoMensagem] tinyint  NOT NULL,
    [CodigoTipoMensagem] int  NOT NULL
);
GO

-- Creating table 'TipoMensagens'
CREATE TABLE [dbo].[TipoMensagens] (
    [CodigoTipoMensagem] int IDENTITY(1,1) NOT NULL,
    [Descricao] nvarchar(30)  NOT NULL,
    [CodigoSistema] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [CodigoPessoa] in table 'Pessoas'
ALTER TABLE [dbo].[Pessoas]
ADD CONSTRAINT [PK_Pessoas]
    PRIMARY KEY CLUSTERED ([CodigoPessoa] ASC);
GO

-- Creating primary key on [CodigoPosicao] in table 'Posicoes'
ALTER TABLE [dbo].[Posicoes]
ADD CONSTRAINT [PK_Posicoes]
    PRIMARY KEY CLUSTERED ([CodigoPosicao] ASC);
GO

-- Creating primary key on [CodigoVeiculo] in table 'Veiculos'
ALTER TABLE [dbo].[Veiculos]
ADD CONSTRAINT [PK_Veiculos]
    PRIMARY KEY CLUSTERED ([CodigoVeiculo] ASC);
GO

-- Creating primary key on [CodigoSistema] in table 'Sistemas'
ALTER TABLE [dbo].[Sistemas]
ADD CONSTRAINT [PK_Sistemas]
    PRIMARY KEY CLUSTERED ([CodigoSistema] ASC);
GO

-- Creating primary key on [CodigoMensagem] in table 'Mensagems'
ALTER TABLE [dbo].[Mensagems]
ADD CONSTRAINT [PK_Mensagems]
    PRIMARY KEY CLUSTERED ([CodigoMensagem] ASC);
GO

-- Creating primary key on [CodigoTipoMensagem] in table 'TipoMensagens'
ALTER TABLE [dbo].[TipoMensagens]
ADD CONSTRAINT [PK_TipoMensagens]
    PRIMARY KEY CLUSTERED ([CodigoTipoMensagem] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [CodigoPessoa] in table 'Veiculos'
ALTER TABLE [dbo].[Veiculos]
ADD CONSTRAINT [FK_PessoaVeiculo]
    FOREIGN KEY ([CodigoPessoa])
    REFERENCES [dbo].[Pessoas]
        ([CodigoPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_PessoaVeiculo'
CREATE INDEX [IX_FK_PessoaVeiculo]
ON [dbo].[Veiculos]
    ([CodigoPessoa]);
GO

-- Creating foreign key on [CodigoVeiculo] in table 'Posicoes'
ALTER TABLE [dbo].[Posicoes]
ADD CONSTRAINT [FK_VeiculoPosicao]
    FOREIGN KEY ([CodigoVeiculo])
    REFERENCES [dbo].[Veiculos]
        ([CodigoVeiculo])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_VeiculoPosicao'
CREATE INDEX [IX_FK_VeiculoPosicao]
ON [dbo].[Posicoes]
    ([CodigoVeiculo]);
GO

-- Creating foreign key on [CodigoSistema] in table 'Mensagems'
ALTER TABLE [dbo].[Mensagems]
ADD CONSTRAINT [FK_SistemaMensagem]
    FOREIGN KEY ([CodigoSistema])
    REFERENCES [dbo].[Sistemas]
        ([CodigoSistema])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_SistemaMensagem'
CREATE INDEX [IX_FK_SistemaMensagem]
ON [dbo].[Mensagems]
    ([CodigoSistema]);
GO

-- Creating foreign key on [CodigoSistema] in table 'Veiculos'
ALTER TABLE [dbo].[Veiculos]
ADD CONSTRAINT [FK_VeiculoSistema]
    FOREIGN KEY ([CodigoSistema])
    REFERENCES [dbo].[Sistemas]
        ([CodigoSistema])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_VeiculoSistema'
CREATE INDEX [IX_FK_VeiculoSistema]
ON [dbo].[Veiculos]
    ([CodigoSistema]);
GO

-- Creating foreign key on [CodigoTipoMensagem] in table 'Mensagems'
ALTER TABLE [dbo].[Mensagems]
ADD CONSTRAINT [FK_MensagemTipoMensagem]
    FOREIGN KEY ([CodigoTipoMensagem])
    REFERENCES [dbo].[TipoMensagens]
        ([CodigoTipoMensagem])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_MensagemTipoMensagem'
CREATE INDEX [IX_FK_MensagemTipoMensagem]
ON [dbo].[Mensagems]
    ([CodigoTipoMensagem]);
GO

-- Creating foreign key on [CodigoSistema] in table 'TipoMensagens'
ALTER TABLE [dbo].[TipoMensagens]
ADD CONSTRAINT [FK_SistemaTipoMensagem]
    FOREIGN KEY ([CodigoSistema])
    REFERENCES [dbo].[Sistemas]
        ([CodigoSistema])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_SistemaTipoMensagem'
CREATE INDEX [IX_FK_SistemaTipoMensagem]
ON [dbo].[TipoMensagens]
    ([CodigoSistema]);
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------